---
title: OBRetentionService contract
summary: The WSDL-declared operation, messages, types, faults, and binding of the `ThirdPartyArchivalService`† as consumed by OBRetentionService.
status: draft
owner: ProcessOB3PRetention team
last_reviewed: 2026-10-06
---

# OBRetentionService contract

This page documents the contract of `ThirdPartyArchivalService`† as the checked-in WSDL declares it. It answers what the service can be asked to do and in what shape.

| Field | Value |
| --- | --- |
| **Service** | `ThirdPartyArchivalService`† (WSDL service `EISClientWithConfig`) |
| **WSDL document** | `ProcessOB3PRetention/Connected Services/OBRetentionService/EISClientWithConfig.wsdl` |
| **SOAP namespace** | `https://saif.com/saif/wsp/thirdpartyarchivalservice` |
| **Port type** | `HylandOutBoundContract` |
| **Binding name** | `BasicHttpBinding_HylandOutBoundContract` |
| **Binding** | SOAP 1.1 over HTTP transport; no SOAP 1.2 binding is declared |
| **Encoding style** | `Document` / `Literal` |
| **Parameter style** | `Wrapped` |
| **Operations declared** | 1 |

## Contract source

The contract was read from `ProcessOB3PRetention/Connected Services/OBRetentionService/EISClientWithConfig.wsdl`. The generated `Reference.cs` was used only to confirm the proxy type, its base type, and the operation name that the WSDL also states. The remote technology is a WCF-hosted Hyland OnBase Web Service Publishing integration*, inferred from the WSDL's WCF metadata namespaces and its `Serialization/Arrays` schema.

## Operations

| Operation | SOAP action | Input message | Output message | Faults | Called in this repository |
| --- | --- | --- | --- | --- | --- |
| [`ArchiveDocument`](#archivedocument) | `WebServicePublishing/ThirdPartyArchivalService/Integration/ArchiveDocument` | `HylandOutBoundContract_ArchiveDocument_InputMessage` (part `parameters`, element `tns:ArchiveDocument`) | `HylandOutBoundContract_ArchiveDocument_OutputMessage` (part `parameters`, element `tns:ArchiveDocumentResponse`) | None declared | Yes. See [operation map](operation-map.md#operation-map) and [reference](reference.md#archivedocument) |

### ArchiveDocument

`ArchiveDocument` takes one wrapper element carrying the document content and its keywords, and returns one `long` result. The reply action is `WebServicePublishing/ThirdPartyArchivalService/Integration/ArchiveDocument/response`. The row for this operation is on [Operation map](operation-map.md#operation-map).

## Messages and types

| Type | Kind | Members | Used by |
| --- | --- | --- | --- |
| `ArchiveDocument` | Request wrapper element | `DocumentArchiveData` (`OBDocumentArchiveArchiveDocument`, optional, nillable) | `ArchiveDocument` |
| `OBDocumentArchiveArchiveDocument` | Complex type | `FileInfo` (`FileInfoArchiveDocument`), `Keywords` (`KeywordsArchiveDocument`); both optional and nillable | `ArchiveDocument` |
| `FileInfoArchiveDocument` | Complex type | `MIMEType`, `Base64FileStream`, `FileExtension`; all `xs:string`, optional, nillable | `ArchiveDocument` |
| `KeywordsArchiveDocument` | Complex type | `Multi_Instance_Keyword_Group`, `Single_Instance_Keyword_Group`, `StandAlone`; all optional and nillable | `ArchiveDocument` |
| `Multi_Instance_Keyword_GroupArchiveDocument` | Complex type | Empty sequence, no members | `ArchiveDocument` |
| `Single_Instance_Keyword_GroupArchiveDocument` | Complex type | Empty sequence, no members | `ArchiveDocument` |
| `StandAloneArchiveDocument` | Complex type | `ClaimNumber_Collection` (`ArrayOfstring`, nillable) | `ArchiveDocument` |
| `ArchiveDocumentResponse` | Response wrapper element | `ArchiveDocumentResult` (`xs:long`, optional) | `ArchiveDocument` |

The `http://schemas.microsoft.com/2003/10/Serialization/` and `Arrays` schemas in the WSDL are standard primitives and `ArrayOfstring`, and carry no service-specific meaning.

### OBDocumentArchiveArchiveDocument

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `FileInfo` | `FileInfoArchiveDocument` | No | Carries the document content and its type |
| `Keywords` | `KeywordsArchiveDocument` | No | Carries the keyword groups used to index the document |

### FileInfoArchiveDocument

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `Base64FileStream` | `xs:string` | No | The document content, Base64 encoded |
| `MIMEType` | `xs:string` | No | The media type of the document content |
| `FileExtension` | `xs:string` | No | The document file extension. Not populated by this repository |

### KeywordsArchiveDocument

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `StandAlone` | `StandAloneArchiveDocument` | No | Standalone keywords. This repository supplies the claim numbers here |
| `Multi_Instance_Keyword_Group` | `Multi_Instance_Keyword_GroupArchiveDocument` | No | Declared as an empty type; not populated by this repository |
| `Single_Instance_Keyword_Group` | `Single_Instance_Keyword_GroupArchiveDocument` | No | Declared as an empty type; not populated by this repository |

### StandAloneArchiveDocument

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `ClaimNumber_Collection` | `ArrayOfstring` | No | The claim numbers delivered with the document |

## Faults

The WSDL declares no faults. A failure reaches this repository as a generic SOAP fault or transport exception surfaced by the proxy; see [Consumption](consumption.md) for how the call sites handle it.

## Binding details

| Aspect | Value |
| --- | --- |
| Transport | HTTPS. The binding policy `BasicHttpBinding_HylandOutBoundContract_policy` requires an HTTPS transport token |
| Message version | SOAP 1.1 |
| Security mode | Transport binding policy with `RequireClientCertificate="false"`, algorithm suite `Basic256`, layout `Strict`; the consumer side is set in `ProcessOB3PRetention/App.config`, see [Architecture](architecture.md#endpoint-resolution) |
| Declared message size limits | None declared in the WSDL |
| Service and port | Service `EISClientWithConfig`, port `BasicHttpBinding_HylandOutBoundContract` |
| Generation-time address | `https://onbase25qa.corp.saif.com/ThirdPartyArchivalService_Integration/SoapService.svc/SOAP11`, from the WSDL service port. This is generation-time evidence, not the runtime address |

## Contract drift risk

| Aspect | Finding |
| --- | --- |
| WSDL captured at | Not determined from source**. The WSDL carries no capture date |
| Live service documented by this run | No. `ThirdPartyArchivalService`† |
| Verification possible | No. The live service is outside this repository, so the captured WSDL cannot be compared against it here |
| Consequence of drift | A change to the remote operation or its types would surface at runtime as a SOAP fault or serialization failure on the `ArchiveDocument` call, which stops the run |

The contract here is only as current as the last refresh of the Service Reference.

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Sources
- ProcessOB3PRetention/Connected Services/OBRetentionService/EISClientWithConfig.wsdl
- ProcessOB3PRetention/Connected Services/OBRetentionService/Reference.cs
- ProcessOB3PRetention/Services/OnBaseService.cs
- ProcessOB3PRetention/App.config
